home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CUCD / Programming / OUI / include / gadgets / gadget.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  1.2 KB  |  52 lines

  1. // $Id: gadget.h 1.2 1997/07/14 04:27:01 dlorre Exp dlorre $
  2. #ifndef CLASS_GADGET_H
  3. #define CLASS_GADGET_H
  4.  
  5. #ifndef EXEC_TYPES_H
  6. #include <exec/types.h>
  7. #endif
  8.  
  9. #ifndef INTUITION_INTUITION_H
  10. struct Gadget ;
  11. struct Window ;
  12. #endif
  13.  
  14. #ifndef CLASS_WINDOW_H
  15. class window ;
  16. #endif
  17.  
  18. #ifndef CLASS_GADGETLIST_H
  19. class gadgetlist ;
  20. #endif
  21.  
  22. // ========================================================================
  23. // ==========================  GADGET CLASS ===============================
  24. // ========================================================================
  25.  
  26. class gadget
  27. {
  28. protected:
  29.     gadgetlist *glist ;
  30.     void (window::*gfunc)(gadget *, unsigned long, unsigned short) ;
  31. public:
  32.     long    id ;
  33.     Gadget  *gad ;
  34.     Window  *w ;
  35.     char    key ;
  36.     gadget(gadgetlist *gl, void (window::*func)(gadget *, unsigned long, unsigned short)) ;
  37.     virtual ~gadget() {}
  38.     void setfunc(void (window::*func)(gadget *, unsigned long, unsigned short)) ;
  39.     virtual void action(unsigned long, unsigned short) ;
  40.     virtual void select(BOOL sel) ;
  41.     virtual void keystroke(BOOL shifted) ;
  42.     void underkey(const char *s) ;
  43. };
  44.  
  45. inline void gadget::setfunc(void (window::*func)(gadget *, unsigned long, unsigned short))
  46. {
  47.     gfunc = func ;
  48. }
  49.  
  50.  
  51. #endif
  52.